import BookListDb from '../models/bookDb.js'//导入数据
import { getPage } from '../component/page/index.js' //导入获得分页的组件
import { Op } from 'sequelize'


//查 全部
let fn_BookList = async ctx => {
    let where = {}
    let keyword = ''
    if(ctx.request.query.keyword){
        keyword = ctx.request.query.keyword
        where = {
            [Op.or] : {
                BookName : {
                    [Op.like] : `%${keyword}%`
                },
                author : {
                    [Op.like] : `%${keyword}%`
                }
            }
        }
    }
    ctx.rander('bookList',
        {
            BookDb : await BookListDb.findAll(
                {
                    limit : 10,
                    offset : getPage(ctx),
                    where
                }
            ),
            pages : +ctx.request.query.pages || 1,
            pageAll : Math.ceil(await BookListDb.count({where}) / 10) || 1,
            keyword
        }
    )
}

//增 增加页面 
let fn_BookAdd_get = async ctx =>  ctx.rander('bookAdd')

//增 添加值 + 重定向
let fn_BookAdd_Post = async ctx => {
    BookListDb.create(ctx.request.body)
    ctx.status = 302
    ctx.set('Location', '/bookList')
}

//改 修改页面 + 传递参数
let fn_BookUpdate_get = async ctx =>  {
    ctx.rander('bookUpdate',
        {
            oneBook : await BookListDb.findByPk(+ctx.params.id)
        }
    )
}

//改 修改值 + 重定向
let fn_BookUpdate_post = async ctx =>  {
    const tmp = await BookListDb.findByPk(+ctx.request.body.id)
    if(tmp){
        await BookListDb.update(ctx.request.body,{where : {id : ctx.request.body.id}})
    }
    ctx.status = 302
    ctx.set('Location', '/bookList')
}

//删 修改页面 + 传递参数
let fn_BookDelete_get = async ctx =>  {
    ctx.rander('bookDelete',
        {
            oneBook : await BookListDb.findByPk(+ctx.params.id)
        }
    )
}
//删 删除值 + 重定向
let fn_BookDelete_post = async ctx =>  {
    const tmp = await BookListDb.findByPk(+ctx.request.body.id)
    if(tmp){
        await BookListDb.destroy({where : {id : ctx.request.body.id}})
    }
    ctx.status = 302
    ctx.set('Location', '/bookList')
}

export const obj = {
    'get /bookList' : fn_BookList,//全部

    'get /bookAdd' : fn_BookAdd_get,//跳转页面
    'post /bookAdd' : fn_BookAdd_Post,//新增数据

    'get /bookUpdate/:id' : fn_BookUpdate_get,//跳转页面
    'post /bookUpdate' : fn_BookUpdate_post,//修改数据

    'get /bookDelete/:id' : fn_BookDelete_get,//跳转页面
    'post /bookDelete' : fn_BookDelete_post//删除数据
}

